package com.wxyzz.satserver.article.service;


import com.wxyzz.common.core.common.PageParam;
import com.wxyzz.common.core.entity.Article;
import com.wxyzz.satserver.article.param.ArticleAddParam;
import com.wxyzz.satserver.article.param.CommentAddParam;
import com.wxyzz.satserver.article.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface ArticleService {

    /**
     * @param pageParam
     * @return 文章首页展示信息
     */
    PageVO<ArticleVO> pageInfo(PageParam pageParam);

    /**
     *
     * @param aid
     * @return 点击封面，查看本篇文章的详细信息
     */

    ShowArticleVO findArticleById(Integer aid);

//前端发布文章后相关信息存储到数据库
    void saveArticle(ArticleAddParam articleAddParam);

//上传图片文件到minio
     String uploadFile(MultipartFile file);

//查询相关热门文章
    List<Article> findPopularArticle(String popularArticle);

//展示文章下的评论信息，根据文章的id去查询
    List<CommentVO> findCommentInfo(Integer aid);

//添加文章相关的评论信息
    void addCommentInfo(CommentAddParam param);

    List<Article> getHostTopicArticle();

    String getHostTopic();

    List<HostLableArticle> getHostLableArticle(String hostLable);

    ArticleDetail ArticleDetail(Integer id);

//我的页面，展示自己发布的文章动态
    MyPageVO<ArticleVO> myPageInfo(PageParam param);

    void updateLikeNum ();

    void updateEnshrineNum ();
}
